﻿--SAMPLE :
--select dbo.fn_num2strCur(1256345.25,1)
-- Один миллион двести пятьдесят шесть тысячтриста сорокпять долларов США 25 центов
CREATE function fn_num2strCur 
(
@Value money, -- numeric value
@Currency int = 0 -- Currency number (0-somoni,1-dollar,13-rur......)
)
returns nvarchar(255)
as
begin
  declare @rpart bigint, @rattr tinyint,  @cpart tinyint, @cattr tinyint, @CurrText nvarchar(50)
set @CurrText = ''
set @rpart=floor(@Value)     
  set @rattr=@rpart%100
  if @rattr>19 
	set @rattr=@rattr%10
 set @cpart=(@Value-@rpart)*100
  if @cpart>19 
	set @cattr=@cpart%10 
  else 
	set @cattr=@cpart
set @CurrText = 
case @Currency 
	when 0 then  'SOMONI'   -- dopishite tekst do konca pojaluista
    when 1 then N' доллар' +case when @rattr=1 then N'' when @rattr in (2,3,4) then N'а' else N'ов' end +N' США '+right('0'+cast(@cpart as nvarchar(2)),2)+N' цент'+case when @cattr=1 then N'' when @cattr in (2,3,4) then N'а' else N'ов' end
	when 13 then N' рубл' +case when @rattr=1 then N'ь' when @rattr in (2,3,4) then N'я' else N'ей' end+' ' +right('0'+cast(@cpart as nvarchar(2)),2)+N' копе' +case when @cattr=1 then N'йка' when @cattr in (2,3,4) then N'йки' else N'ек' end
end
  return dbo.fn_num2str(@rpart,1)+@CurrText
end


